Microprocessor logic design typically includes an architectural stage and an implementation stage.
The architectural stage includes designing a framework of functional units that provide performance and functionality of a new microprocessor. This framework is typically captured in a text-based document. A model of the new microprocessor, represented in a high level language such as C++, is generated to verify that the function and performance requirements are met.
The implementation stage involves taking the model and the text-based document from the architectural stage and generating a Hardware Design Language (HDL) file.